Время формирования страницы
Для вычисления времени формирования страницы с требуемой точностью можно использовать функцию microtime(), которая возвращает строку вида “msec sec”, где msec - составляющая в микросекундах, а sec - время в секундах, прошедшее с 1970 года. Результат, возвращаемый функцией, может быть, к примеру, таким:
Такое представление не очень удобно для вычисления разницы во времени, поэтому его необходимо преобразовать в числовой вид. Иначе говоря, строку “msec sec” необходимо преобразовать к виду “sec.msec”:
$part_time = explode(' ', microtime());
$real_time = $part_time[1].substr($part_time[0], 1);
?>
Здесь при помощи функции explode() стока, принимаемая во втором параметре, разбивается на подстроки по разделителю, передаваемому в первом параметре (в нашем случае это символ пробела).
Для получения разности между двумя числами, представленными в виде строк, можно воспользоваться функцией bcsub():
$diff_time = bcsub($stop_time, $start_time, 5);
?>
Здесь 5 - число знаков после запятой. Таким образом код, вычисляющий время генерации страницы, выглядит так:
$start_time = gettime();
// Здесь код, формирующий страницу
$stop_time = gettime();
$diff_time = bcsub($stop_time, $start_time, 5);
echo '<p>Страница сформирована за '.$diff_time.' сек.</p>';
// Вспомогательная функция
function gettime()
{
$part_time = explode(' ', microtime());
$real_time = $part_time[1].substr($part_time[0], 1);
return $real_time;
}
?>
Morfi:
А не проще так?
$time_start = microtime(1);
// скрипт
$time_end = microtime(1);
24 Ноябрь 2008, 17:36$time = $time_end - $time_start;
admin:
Morfi, так конечно проще, но дополнительный аргумент для функции microtime() появился в PHP 5.0.0.
24 Ноябрь 2008, 17:49